package com.bestcem.xm.award.dao.mapper;

import com.bestcem.xm.award.entity.mysql.BandPointEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface BandPointMapper {

    //  extends AwardBaseMapper<String, BandPointEntity>
//    int deleteByPrimaryKey(ID id);
//
//    int insert(T entity);
//
//    int insertSelective(T entity);
//
//    T selectByPrimaryKey(ID id);
//
//    int updateByPrimaryKeySelective(T entity);
//
//    int updateByPrimaryKey(T record);

    /**
     * 根据id查询
     *
     * @param id id
     * @return 记录
     */
    BandPointEntity selectByPrimaryKey(String id);

    /**
     * 查询未删除的记录
     *
     * @param name  积分名称
     * @param orgId 公司id
     * @return 记录
     */
    BandPointEntity findByNameNotDel(@Param("name") String name, @Param("orgId") String orgId);

//    /**
//     * 查询记录，使用base的selectByPrimaryKey
//     *
//     * @param id id
//     * @return 记录
//     */
//    BandPointEntity findById(String id);

    /**
     * 查询记录
     *
     * @param code  code
     * @param orgId 租户Id
     * @return 记录
     */
    BandPointEntity findByCode(@Param("code") String code, @Param("orgId") String orgId);


    /**
     * 查询列表，与原来有变更，注意
     *
     * @param start    开始条数，从0开始
     * @param pageSize 查询条数
     * @param orgId    公司id
     * @return 列表
     */
    List<BandPointEntity> findAllByPage(@Param("start") Integer start, @Param("pageSize") Integer pageSize, @Param("orgId") String orgId);

    /**
     * 查询未删除数量
     *
     * @param orgId 公司id
     * @return 条数
     */
    Long countByOrgIdNotDel(String orgId);

    /**
     * 更新状态为已删除
     *
     * @param idList idList
     * @return 结果
     */
    int updateDelFlagById(@Param("updateTime") Date now, @Param("idList") List idList);

    /**
     * 批量插入,需要生成mongo id,需要设默认值
     *
     * @param list 待插入列表
     */
    void insertList(List<BandPointEntity> list);


}